package net.maku.events.service;

import net.maku.events.query.SnapshotApplyQuery;
import net.maku.events.vo.*;
import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.BaseService;
import net.maku.events.query.ActivitySnapshotQuery;
import net.maku.events.entity.ActivitySnapshotEntity;

import java.util.List;

/**
 * 随手拍活动
 *
 * @author 阿沐 babamu@126.com
 * @since 1.0.0 2025-03-22
 */
public interface ActivitySnapshotService extends BaseService<ActivitySnapshotEntity> {


    /**
     * 获取首页推荐活动
     *
     * @return 结果
     */
    List<ActivityBaseVO> topActivity();

    /**
     * 查询随手拍活动列表
     *
     * @param query 查询对象
     * @return 结果
     */
    PageResult<ActivitySnapshotVO> page(ActivitySnapshotQuery query);

    /**
     * 参与活动
     *
     * @param id 主键
     */
    void joinActivity(Long id);

    /**
     * 查询详情
     *
     * @param id 主键
     * @return 结果
     */
    ActivitySnapshotVO getInfoById(Long id);

    /**
     * 随手拍活动发布随手拍
     *
     * @param vo 随手拍对象
     */
    double saveUserSnapshot(SnapshotApplyVO vo);

    /**
     * 随手拍分页查询
     *
     * @param query 查询对象
     * @return 结果
     */
    PageResult<UserSnapshotVO> lookSnapshot(SnapshotApplyQuery query);

}